<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Pytils README</title>
<body>

<h1>PyTils - библиотека для простой обработки русского текста.</h1>

<h2>Кратко</h2>
<p>Pytils - простой обработчик русского текста на Python. Идея позаимствована у 
   <a href="http://live.julik.nl">Julik</a> и его <a href="http://rutils.rubyforge.org/">RuTils</a>.
</p>
<p>Автор pytils - <a href="mailto:the.pythy@gmail.com">Pythy</a>.
</p>

<h2>Ссылки</h2>
<ul>
 <li>
     <a href="http://code.google.com/p/pythy/">Pythy на code.google.com</a>
 </li>

 <li>
     <a href="http://gorod-omsk.ru/blog/pythy/2006/09/02/pytils/">Пост о pytils в блоге</a>
 </li>
</ul>

<h2>Как скачать</h2>
<p>При помощи любого
   <a href="http://subversion.tigris.org/links.html#clients">svn-клиента</a>
   можно получить последнюю версию pytils по адресу
   <a href="http://pythy.googlecode.com/svn/trunk/pytils/">http://pythy.googlecode.com/svn/trunk/pytils/</a>.
</p>

<h2>Как использовать</h2>
<p>Во-первых, <strong>все</strong> входящие строки - unicode. И выходящие - тоже (за малыми
   исключениями, о них ниже). В случае, если Вы передадите str, получите
   AssertionError.
</p>
<p>Pytils содержит следующие модули: 
</p>
<ol>
 <li>
     <code>numeral</code> - для обработки числительных
 </li>

 <li>
     <code>dt</code> - русские даты без локалей
 </li>

 <li>
     <code>translit</code> - транслитерация
 </li>
</ol>
<p>API модулей смотрите в директории 
   <a href="html/index.html">html</a>.
</p>

<h2>Числительные</h2>
<p>Pytils умеет выбирать правильный падеж в зависимости от числа
</p>
<pre><code>&gt;&gt;&gt; pytils.numeral.choose_plural(15, (u&quot;гвоздь&quot;, u&quot;гвоздя&quot;, u&quot;гвоздей&quot;))
u'гвоздей'
</code></pre><p>В качестве второго параметра передается кортеж с вариантами. Чтобы легко 
   запомнить, в каком порядке указывать варианты, пользуйтесь мнемоническим 
   правилом: один-два-пять - один гвоздь, два гвоздя, пять гвоздей.
</p>
<p>Также pytils реализует числа прописью
</p>
<pre><code>&gt;&gt;&gt; pytils.numeral.in_words(254)
u'двести пятьдесят четыре'
&gt;&gt;&gt; pytils.numeral.in_words(2.01)
u'две целых одна сотая'
&gt;&gt;&gt; pytils.numeral.rubles(2.01)
u'два рубля одна копейка'
&gt;&gt;&gt; pytils.numeral.sum_string(5, 1, (u&quot;гвоздь&quot;, u&quot;гвоздя&quot;, u&quot;гвоздей&quot;))
u'пять гвоздей'
&gt;&gt;&gt; pytils.numeral.sum_string(3, 1, (u&quot;белка&quot;, u&quot;белки&quot;, u&quot;белок&quot;))
u'три белки'
</code></pre>
<h2>Даты</h2>
<p>В pytils можно получить русские даты без использования локалей.
</p>
<pre><code>&gt;&gt;&gt; pytils.dt.ru_strftime(u&quot;сегодня - %d %B %Y, %A&quot;, inflected=True)
u'сегодня - 02 сентября 2006, суббота'
</code></pre><p>и получить величину периода:
</p>
<pre><code>&gt;&gt;&gt; pytils.dt.distance_of_time_in_words(time.time()-10000)
u'2 часа назад'
&gt;&gt;&gt; pytils.dt.distance_of_time_in_words(time.time()+10000, accuracy=2)
u'через 2 часа 46 минут'
</code></pre>
<h2>Транслитерация</h2>
<p>При помощи pytils можно сделать транслитерацию:
</p>
<pre><code>&gt;&gt;&gt; print pytils.translit.translify(u&quot;Проверка связи&quot;)
'Proverka svyazi'
&gt;&gt;&gt; pytils.translit.detranslify(&quot;Proverka svyazi&quot;)
u'Проверка связи'
</code></pre><p>В translify вывод - str, а не unicode. В detranslify вход может быть как 
   unicode, так и str.
</p>
<p>И сделать строку для URL (удаляются лишние символы, пробелы заменяются на 
   дефисы):
</p>
<pre><code>&gt;&gt;&gt; pytils.translit.slugify(u&quot;тест и еще раз тест&quot;)
'test-i-esche-raz-test'
</code></pre>

</body>
</html>